4 import controllers
.SelectionController
;
5 import controllers
.actions
.*;
7 import java
.awt
.event
.ActionEvent
;
8 import java
.awt
.event
.ActionListener
;
9 import java
.awt
.event
.KeyEvent
;
12 import javax
.swing
.undo
.*;
15 public class GraphFrame
extends JFrame
{
16 private static final long serialVersionUID
= -7929100929760152271L;
17 private GraphPanel panel
;
18 private UndoManager undoManager
;
20 private JMenuBar menubar
;
21 private JMenu menuOptionFile
;
22 private JMenu menuOptionEdit
;
24 private JMenuItem menuOptionFileClose
;
25 private JMenuItem menuOptionFileOpen
;
26 private SelectionController selectionController
;
27 private ActionListener onMenuFileClose
;
28 private ActionListener onMenuFileOpen
;
30 private JMenuItem menuOptionEditUndo
;
31 private JMenuItem menuOptionEditAddNode
;
32 private JMenuItem menuOptionEditAddEdge
;
33 private JMenuItem menuOptionEditRemoveNode
;
35 private ActionListener onMenuEditUndo
;
36 private ActionListener onMenuEditAddNode
;
37 private ActionListener onMenuEditAddEdge
;
38 private ActionListener onMenuEditDeleteNode
;
40 public GraphFrame(GraphModel model
){
41 undoManager
= new UndoManager();
42 this.setTitle("Graph Editor");
43 this.setSize(500, 500);
44 menubar
= new JMenuBar();
47 menuOptionFile
= new JMenu("File");
48 menuOptionFile
.setMnemonic(KeyEvent
.VK_F
);
49 menuOptionEdit
= new JMenu("Edit");
50 menuOptionEdit
.setMnemonic(KeyEvent
.VK_E
);
52 menuOptionFileClose
= new JMenuItem("Close program",KeyEvent
.VK_C
);
53 menuOptionFileClose
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_E
, Event
.CTRL_MASK
));
55 menuOptionFileOpen
= new JMenuItem("Openen",KeyEvent
.VK_O
);
56 menuOptionFileOpen
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_O
, Event
.CTRL_MASK
));
58 menuOptionEditUndo
= new JMenuItem("Ongedaan maken",KeyEvent
.VK_Z
);
59 menuOptionEditUndo
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_Z
, Event
.CTRL_MASK
));
61 menuOptionEditAddNode
= new JMenuItem("Knoop toevoegen",KeyEvent
.VK_N
);
62 menuOptionEditAddNode
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_N
, Event
.CTRL_MASK
));
64 menuOptionEditAddEdge
= new JMenuItem("Kant toevoegen",KeyEvent
.VK_M
);
65 menuOptionEditAddEdge
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_M
, Event
.CTRL_MASK
));
67 menuOptionEditRemoveNode
= new JMenuItem("Delete Node",KeyEvent
.VK_D
);
68 menuOptionEditRemoveNode
.setAccelerator(KeyStroke
.getKeyStroke(KeyEvent
.VK_DELETE
,Event
.SHIFT_MASK
));
70 onMenuFileClose
= new ActionListener(){
71 public void actionPerformed(ActionEvent arg0
) {
75 onMenuFileOpen
= new ActionListener(){
76 public void actionPerformed(ActionEvent arg0
) {
80 onMenuEditUndo
= new ActionListener(){
81 public void actionPerformed(ActionEvent arg0
) {
86 onMenuEditAddNode
= new ActionListener(){
87 public void actionPerformed(ActionEvent arg0
) {
88 GraphFrame
.this.undoManager
.addEdit(new AddNode(GraphFrame
.this.selectionController
));
91 onMenuEditAddEdge
= new ActionListener(){
92 public void actionPerformed(ActionEvent arg0
) {
97 onMenuEditDeleteNode
= new ActionListener(){
98 public void actionPerformed(ActionEvent arg0
){
99 undoManager
.addEdit(new DeleteNode(selectionController
));
103 menuOptionFileClose
.addActionListener(onMenuFileClose
);
104 menuOptionEditAddNode
.addActionListener(onMenuEditAddNode
);
105 menuOptionEditAddEdge
.addActionListener(onMenuEditAddEdge
);
106 menuOptionEditUndo
.addActionListener(onMenuEditUndo
);
107 menuOptionFileOpen
.addActionListener(onMenuFileOpen
);
108 menuOptionEditRemoveNode
.addActionListener(onMenuEditDeleteNode
);
110 menuOptionFile
.add(menuOptionFileOpen
);
111 menuOptionFile
.addSeparator();
112 menuOptionFile
.add(menuOptionFileClose
);
114 menuOptionEdit
.add(menuOptionEditAddNode
);
115 menuOptionEdit
.add(menuOptionEditAddEdge
);
116 menuOptionEdit
.addSeparator();
117 menuOptionEdit
.add(menuOptionEditUndo
);
118 menuOptionEdit
.add(menuOptionEditRemoveNode
);
120 menubar
.add(menuOptionFile
);
121 menubar
.add(menuOptionEdit
);
122 setJMenuBar(menubar
);
123 panel
= new GraphPanel(model
);
129 public void selectedObject(boolean selected
) {
130 menuOptionEditAddEdge
.setEnabled(selected
);
131 menuOptionEditRemoveNode
.setEnabled(selected
);
133 public void setSelectionController(SelectionController s
) {
134 selectionController
= s
;
136 public GraphPanel
getPanel()